#include<stdio.h>
#include<stdlib.h>
// 头插入法
typedef struct link_node{
    int data;
    struct link_node *next;
}Node;

Node * push(Node *node, int data){
    Node *temp=(Node *)malloc(sizeof(Node));
    temp->data=data;
    temp->next=node;
    node = temp;
    return node;
}

int pop(Node *node){
    if(node){
        Node *p=node;
        node=node->next;
        printf("弹栈元素：%d ",p->data);
        if (node) {
            printf("栈顶元素：%d\n",node->data);
        }else{
            printf("栈已空\n");
        }
        free(p);
    }
    else{
        printf("栈内没有元素");
        return node;
    }
    return node;
}

int main(){
    Node * stack=NULL;
    stack=push(stack, 1);
    stack=push(stack, 2);
    stack=push(stack, 3);
    stack=push(stack, 4);
    stack=pop(stack);
    stack=pop(stack);
    stack=pop(stack);
    stack=pop(stack);
    stack=pop(stack);
    return 0;
}